import type { RouteMeta } from "vue-router";

/**
 * @author : andy
 * @description : 权限相关类型
 */

/**
 * 路由meta字段包含的属性
 */
export interface AccessRouteMeta extends RouteMeta {
  /** 是否为内嵌菜单 */
  isIframe: boolean;
  /** 是否为外链菜单 */
  isExternal: boolean;
  /** 菜单是否固定，菜单在标签栏展示时，不能被删除 */
  fixed: boolean;
  /** 路由是否已经被加载过 */
  loaded?: boolean;
  /** 页面标题 */
  title: string;
  /** 是否缓存 */
  isKeepAlive: boolean;
}

/**
 * 权限菜单数据类型
 */
export interface AccessMenuItem {
  /** 菜单名称 */
  name: string;
  /** 菜单路径 */
  path: string;
  /** 菜单图标 */
  icon: string;
  /** 菜单是否固定 */
  fixed: boolean;
  /** 是否为外链 */
  isExternal: boolean;
  /** 是否为内嵌 */
  isIframe: boolean;
  /** 子菜单 */
  children: AccessMenuItem[];
  /** 内嵌页面路径 */
  iframePath: string;
  /** 是否缓存 */
  isKeepAlive: boolean;
  /** 菜单编码 */
  code: string;
}

/**
 * 用户信息类型
 */
export interface UserInfo {
  name: string;
}